/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.psa.bussines;

import br.edu.psa.model.Livro;
import br.edu.psa.persistence.LivroJpaController;
import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author JOAO e ANDRIGO
 */
@Stateless
@LocalBean
public class LivroBean {

    @PersistenceContext
    private EntityManager em;

    public Livro createLivro(Livro livro) {
        if (livro.getTitulo() == null || livro.getTitulo().equals("")) {
            return null;
        }

        if (livro.getTema().getId() == null) {
            return null;
        }

        if (livro.getAutor() == null || livro.getAutor().equals("")) {
            return null;
        }

        if (livro.getAno() < 1500) {
            return null;
        }

        LivroJpaController controller = new LivroJpaController(em);
        try {
            controller.create(livro);
            return livro;
        } catch (Exception ex) {
            return null;
        }
    }

    public Livro editLivro(Livro livro) {
        if (livro.getTitulo() == null || livro.getTitulo().equals("")) {
            return null;
        }

        if (livro.getTema().getId() == null) {
            return null;
        }

        if (livro.getAutor() == null || livro.getAutor().equals("")) {
            return null;
        }

        if (livro.getAno() < 1500) {
            return null;
        }

        LivroJpaController controller = new LivroJpaController(em);
        try {
            controller.edit(livro);
            return livro;
        } catch (Exception ex) {
            return null;
        }
    }
    
    public boolean removeLivro(Livro livro){        
        LivroJpaController controller = new LivroJpaController(em);
        try {
            controller.destroy(livro.getId());
            return true;
        }  catch (Exception ex) {
            return false;
        }
    }
    
    public List<Livro> searchByName(String name){
        if(name == null || name.equals("")){
            return null;
        }
        
        LivroJpaController controller = new LivroJpaController(em);
        return controller.searchLivroByName(name);
    }
}
